package com.ruoyi.app.service;

import com.ruoyi.app.domain.*;
import com.ruoyi.app.dto.*;
import com.ruoyi.framework.web.domain.AjaxResult;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/*
@description:用户服务
@ClassName UserService
@author chen
@create 2025-03-13 22:43
@Version 1.0
*/
public interface UserService
{
    AjaxResult insertUserInfo(User user);
    AjaxResult login(User user);
    List<UserDto> getUserInfoList(Map<String, Object> params);
    AjaxResult wxLogin(UserWxLoginReqDto wxLoginReqDto);
    List<PromotionInfo> getPromotionList(Map<String, Object> params);
    AjaxResult updateUserInfo(User user);

    AjaxResult upArticleInfoThumbs(Long id);

    AjaxResult downArticleInfoThumbs(Long id);
    AjaxResult insertArticleCommentInfo(ArticleComment articleComment);

    AjaxResult deleteArticleCommentInfo(Long id);

    AjaxResult upTripInfoThumbs(Long id);

    AjaxResult downTripInfoInfoThumbs(Long id);

    AjaxResult insertTripInfoCommentInfo(TripComment tripComment);

    AjaxResult deleteTripInfoCommentInfo(Long id);

    AjaxResult deleteByPrimaryKey(Long id);

    ResponseEntity<String> uploadExcel(MultipartFile file);


    void refreshToken(LoginUserDto loginUser);

    User selectByPrimaryKey(Long createId);

    void addBalance(Long userId, BigDecimal amount);

    AjaxResult getVisit();

    AjaxResult getUserVisit();

    AjaxResult payOrder(RelUserMember relUserMember);

    AjaxResult phoneLogin(User user) throws Exception;

    AjaxResult band(String code);

    AjaxResult messageList();

    AjaxResult delMessageDto(DelMessageDto delMessageDto);

    AjaxResult collect(CollectDto collectDto);

    AjaxResult collectList();

    AjaxResult cancelCollect(Long collectId);

}

